package com.gdg.miagegi.can2015.adapter; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.androidquery.AQuery; import com.gdg.miagegi.can2015.MainApplication; import com.gdg.miagegi.can2015.R; import com.gdg.miagegi.can2015.model.Feed; import android.content.Context; import android.graphics.Typeface; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import net.danlew.android.joda.JodaTimeAndroid; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class FeedListAdapter extends RecyclerView.Adapter<FeedListAdapter.MyViewHolder>{ private AQuery listAq; private AQuery aQ; private List<Feed> mMainListItem = new ArrayList<Feed>(); private Context mContext; private LayoutInflater mInflater; private onItemClickListener listener; public FeedListAdapter(Context context, List<Feed> mainListItem) { mContext = context; mMainListItem = mainListItem; mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); listAq = new AQuery(this.mContext); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.feed_list_item, parent, false); MyViewHolder holder = new MyViewHolder(view); view.setTag(holder); aQ = listAq.recycle(view); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { final Feed object = mMainListItem.get(position); if (object != null) { JodaTimeAndroid.init(MainApplication.getContext()); holder.tvTitle.setText(object.title); Date date = object.pubDate; DateTime dt = new DateTime(date); DateTimeFormatter fmt = DateTimeFormat.forPattern("E e MMMM yyyy HH:mm:ss"); String str = fmt.print(dt); holder.tvDate.setText(str); if (object.photoUrl != null) { String imageUrl = object.photoUrl; aQ.id(holder.ivThumbnail).progress(holder.progress).image(imageUrl, true, true, 0,0, null, 0,1.0f); } } Typeface Roboto_Regular = Typeface.createFromAsset(mContext.getAssets(), "Roboto-Regular.ttf"); holder.tvTitle.setTypeface(Roboto_Regular); } @Override public int getItemCount() { return mMainListItem.size(); } public void setItemClickListener(onItemClickListener itemClickListener){ listener = itemClickListener; } class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { public TextView tvTitle; public ImageView ivThumbnail; public ProgressBar progress; public TextView tvDate; public MyViewHolder(View itemView) { super(itemView); tvTitle = (TextView) itemView.findViewById(R.id.tvTitle); tvDate = (TextView)itemView.findViewById(R.id.tvDate); ivThumbnail = (ImageView) itemView.findViewById(R.id.ivThumbnail); progress = (ProgressBar) itemView.findViewById(R.id.progress); tvTitle.setOnClickListener(this); tvDate.setOnClickListener(this); ivThumbnail.setOnClickListener(this); } @Override public void onClick(View v) { if(listener != null){ listener.onItemClicked(v, getPosition()); } } } public interface onItemClickListener{ public void onItemClicked(View view, int position); } }